package co.yixiang.modules.monitoring.fluorite.entity;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import co.yixiang.modules.monitoring.entity.domain.YxMonitoring;
import lombok.Data;

import java.io.Serializable;

/**
 * 萤石云接口请求参数
 * @author 13409
 */
@Data
public class FluoriteQueryForm implements Serializable {

    /**
     * 授权过程获取的access_token
     */
    private String accessToken;
    /**
     * 直播源，[设备序列号]:[通道号],[设备序列号]:[通道号]的形式
     */
    private String source;
    /**
     * 设备序列号,存在英文字母的设备序列号，字母需为大写
     */
    private String deviceSerial;

    /**
     * 设备名称，长度不大于50字节，不能包含特殊字符
     */
    private String deviceName;

    /**
     * 通道号,默认为1
     */
    private Integer channel = 1;

    /**
     * 设备验证码，设备机身上的六位大写字母
     */
    private String validateCode;
    /**
     * 流播放协议，1-ezopen、2-hls、3-rtmp、4-flv，默认为1
     */
    private Integer protocol;
    /**
     * 视频清晰度，1-高清（主码流）、2-流畅（子码流）
     */
    private Integer quality;
    /**
     * 地址的类型，1-预览，2-本地录像回放，3-云存储录像回放，非必选，默认为1；回放仅支持rtmp、ezopen协议
     */
    private String type;

    public void copy(YxMonitoring source) {
        BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
    }
}
